Configuration Closures

February 6th, 2021

Nearly every application in existence requires some form of configuration. After all, no two instances of the same app are exactly the same. The "tried and true" (read "quick and dirty") way of doing this has conventionally been with arrays. This works well for most basic configuration values of scalar types, however, sometimes it may be necessary to configure complex objects.

Read More

Never Gonna Give You Up

This is an example of a video embed.

That is all.

Read More

Run Composer Binaries From Project Directories

As a PHP developer I often find myself having to run executable files installed to a project via Composer (e.g. php-cs-fixer, phpunit, psysh, etc.). These binary files typically reside in vendor/bin relative to the root of a project and in order to run these binary files from the project root I would need to cd into the vendor/bin directory first or type out the relative path (e.g. vendor/bin/php-cs-fixer fix) every time I wanted to run one of these executables.

Read More

Scheduled Tasks with Systemd Timers

Use a Linux system long enough and eventually you'll need to schedule a recurring task. Of course the defacto scheduler is cron (and there's nothing inherently wrong with it) but I've grown to like the flexibility and features of systemd timers. Some of the benefits they provide over cron include:

Read More

Embrace the Framework

Frameworks are among the most important tools we developers have and yet they are often taken for granted. The way I see it is a framework has two primary benefits: 1) saving individual developers time by providing predefined solutions to common problems and 2) allowing teams to work more efficiently by giving them a common model for coding standards, file organization, design language and more. However, these benefits quickly break down when framework conventions are broken or ignored, intentionally or otherwise.

Read More